// Start with standard C++ #includes, if you need any

// Then with KTH Robot Framework #includes
# include "init_systems.h"
# include "log.h"

// Then with your own program's #includes
# include "modules/adder.h"
# include "modules/multiplier.h"

using namespace kthrobot;
using namespace std;

// Import things from your team's namespace
using namespace my_cool_team;

int main (int argc, char **argv) {
  Init::RegisterCommon();
  if (!Init::Systems(argc, argv)) return 1;

  Log::Write("Hi there!");

  // It's good practice to open braces ({) if you are declaring
  // complicated modules in the middle of your function code
  {
    Multiplier multiplier(3,4);
    Adder adder(3,4);

    Log::Write("Multiplier module result: %d",
               multiplier.CalculateResult());
    Log::Write("Adder module result: %d",
               adder.CalculateResult());

    // multiplier and adder are going to be destroyed
    // right at the point where "}" is reached
  }

  Init::Shutdown();
  return 0;
}
